package com.dominator.utils.system;

import com.dominator.utils.qiniu.QiniuUploadFile;
import com.dominator.utils.qrcode.QRCodeUtil;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;

public  class PictureUtil {



    private static String NAME="尊敬的张三先生";


    private static String CODE="您的通行码为：123456";


    private static String URL="http://owtm7tpz8.bkt.clouddn.com/1507547987.png";


    /**
     * 打印模版
     *
     * @param imgWidth    图片的宽度
     * @param imgHeight   图片的高度
     * @param x           起始x轴
     * @param y           起始y轴
     * @param rowHeight   每行的高度
     * @param dataStart   数据缩进
     * @param firstWidth  第一列间距x坐标
     * @param secondWidth 第二列间距x坐标
     * @param thirdWidth  第三列间距x坐标
     * @param fourWidth   第四列间距x坐标
     * @return BufferedImage
     *(参数自己定，我的是340, 200, 0, 0, 20, 10, 60, 190, 250, 340)
     */
    private static BufferedImage createTbGraphics(int imgWidth, int imgHeight, int x, int y, int rowHeight,
                                           int dataStart, int firstWidth, int secondWidth, int thirdWidth, int fourWidth) {
        //空白面板  也可是张图片
        BufferedImage image = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_BYTE_GRAY);
        Graphics2D g = null;

        try {

            g = image.createGraphics();// 得到图形上下文
            g.setBackground(Color.WHITE);//设置背景色
            g.fillRect(x, y, imgWidth, imgHeight);//填充整个屏幕
            g.setColor(Color.BLACK);//设置画笔颜色
            g.setFont(new Font("微软雅黑", Font.ITALIC, 20));// 设置字体 还可设置为Font.ITALIC 就这两种条码打印机打印出来的的线是实体线

            //g.drawString(NAME, 100, 100);    //第一个参数你要画出什么东西，后面两个是位置
            //其他数据....

            //最后一条线
            //在指定坐标(198,61)处 写入二维码或其它图片
            InputStream is=  new ByteArrayInputStream(DownloadUtil.downLoadFromUrl(URL));
            g.drawImage(ImageIO.read(is), null, 0, 0);
//           g.drawLine(firstWidth, rowHeight, firstWidth, rowHeight * 2);
           // g.drawString(NAME+":" , firstWidth + dataStart, rowHeight * 1 - 5);
            //g.drawString(CODE , firstWidth + dataStart, rowHeight * 4 - 5);

            g.dispose();
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return image;
    }

    public static void main(String[] args) {
         BufferedImage bufferedImage=PictureUtil.createTbGraphics(680, 400, 0, 0, 20, 10, 60, 190, 250, 340);

         String res=QiniuUploadFile.upload(bufferedImage,"png");

         System.out.println(res);
    }


}
